#include "sdlJeu.h"
#include <SDL/SDL.h>
#include <SDL/SDL_ttf.h>
void sdljeuInit(sdlJeu * pSdlJeu)
{
    Jeu *pJeu;
    char image_lettre[22];
    char image_joueur[18];


    int i;
    TTF_Font *police_joueur,*police_chrono;
    SDL_Color couleurBlanche;
    char score[1];

    pJeu = &(pSdlJeu->jeu);
	jeuInit(pJeu);

    assert(TTF_Init()!=-1);

    couleurBlanche.r=255;
    couleurBlanche.g=255;
    couleurBlanche.b=255;

	assert(SDL_Init(SDL_INIT_EVERYTHING)!=-1);

	police_joueur=TTF_OpenFont("data/police/nomjoueur.ttf", 25);
    if(police_joueur==NULL) police_joueur=TTF_OpenFont("../data/police/nomjoueur.ttf", 10);
    assert(police_joueur!=NULL);

    police_chrono=TTF_OpenFont("data/police/temps.ttf", 30);
    if(police_chrono==NULL) police_chrono=TTF_OpenFont("../data/police/temps.ttf", 10);
    assert(police_chrono!=NULL);

	pSdlJeu->surface_ecran=SDL_SetVideoMode(900,800,32,SDL_SWSURFACE);
	assert( pSdlJeu->surface_ecran!=NULL);
	SDL_WM_SetCaption( "WordLIF7", NULL );


	pSdlJeu->image_fond=SDL_load_image("data/ecran.bmp");
	if(pSdlJeu->image_fond==NULL) pSdlJeu->image_fond=SDL_load_image("../data/ecran.bmp");
	assert(pSdlJeu->image_fond!=NULL);

	pSdlJeu->surface_chrono=TTF_RenderText_Blended(police_chrono,"Temps", couleurBlanche);

    pSdlJeu->surface_avatar=(SDL_Surface **) malloc(sizeof(SDL_Surface*) * pJeu->nbJoueurs);
    for(i=0;i<pJeu->nbJoueurs; i++)
    {
        strcpy(image_joueur,"data/joueurs/A.bmp");
         image_joueur[13]=i+49;
        pSdlJeu->surface_avatar[i]=SDL_load_image(image_joueur);

        if(pSdlJeu->surface_avatar[i]==NULL)
        {
         strcpy(image_joueur,"../data/joueurs/A.bmp");
         image_joueur[13]=i+49;
         pSdlJeu->surface_avatar[i]=SDL_load_image(image_joueur);
        }
        assert(pSdlJeu->surface_avatar[i]!=NULL);
    }

    pSdlJeu->surface_texte_nom_joueur=(SDL_Surface **) malloc(sizeof(SDL_Surface*) * pJeu->nbJoueurs);
    pSdlJeu->surface_texte_score=(SDL_Surface **) malloc(sizeof(SDL_Surface*) * pJeu->nbJoueurs);
    for(i=0;i<pJeu->nbJoueurs; i++)
    {
        pSdlJeu->surface_texte_nom_joueur[i]=TTF_RenderText_Blended(police_joueur,pJeu->tabJoueurs[i]->nomJoueur, couleurBlanche);
        sprintf(score,"%d",pJeu->tabJoueurs[i]->score);
        pSdlJeu->surface_texte_score[i]=TTF_RenderText_Blended(police_joueur,score, couleurBlanche);
        assert(pSdlJeu->surface_avatar[i]!=NULL);
        assert(pSdlJeu->surface_texte_nom_joueur[i]!=NULL);
        assert(pSdlJeu->surface_texte_score[i]!=NULL);
    }

	pSdlJeu->surface_case=SDL_load_image("data/case1.bmp");
	if(pSdlJeu->surface_case==NULL) pSdlJeu->surface_case=SDL_load_image("../data/case1.bmp");
	assert(pSdlJeu->surface_case!=NULL);

	pSdlJeu->surface_vortex=SDL_load_image("data/vortex.bmp");
	if(pSdlJeu->surface_vortex==NULL) pSdlJeu->surface_vortex=SDL_load_image("../data/vortex.bmp");
	assert(pSdlJeu->surface_vortex!=NULL);

	pSdlJeu->surface_milieu=SDL_load_image("data/case_centrale.bmp");
	if(pSdlJeu->surface_milieu==NULL) pSdlJeu->surface_milieu=SDL_load_image("../data/case_centrale.bmp");
	assert(pSdlJeu->surface_milieu!=NULL);

	pSdlJeu->efface_lettre=SDL_load_image("data/efface.bmp");
	if(pSdlJeu->efface_lettre==NULL) pSdlJeu->efface_lettre=SDL_load_image("../data/efface.bmp");
	assert(pSdlJeu->efface_lettre!=NULL);

	pSdlJeu->surface_valider=SDL_load_image("data/valider.bmp");
	if(pSdlJeu->surface_valider==NULL) pSdlJeu->surface_valider=SDL_load_image("../data/valider.bmp");
	assert(pSdlJeu->surface_valider!=NULL);

	pSdlJeu->surface_annuler=SDL_load_image("data/annuler.bmp");
	if(pSdlJeu->surface_annuler==NULL) pSdlJeu->surface_annuler=SDL_load_image("../data/annuler.bmp");
	assert(pSdlJeu->surface_annuler!=NULL);

    pSdlJeu->surface_passe_tour=SDL_load_image("data/passe.bmp");
	if(pSdlJeu->surface_passe_tour==NULL) pSdlJeu->surface_annuler=SDL_load_image("../data/passe.bmp");
	assert(pSdlJeu->surface_passe_tour!=NULL);

	pSdlJeu->surface_change_lettres=SDL_load_image("data/change_lettre.bmp");
	if(pSdlJeu->surface_change_lettres==NULL) pSdlJeu->surface_change_lettres=SDL_load_image("../data/change_lettre.bmp");
    assert(pSdlJeu->surface_change_lettres!=NULL);


    for(i=0; i<26; i++)
    {
         strcpy(image_lettre,"data/lettres/A.bmp");
         image_lettre[13]=97+i;
        pSdlJeu->surface_lettre[i]=SDL_load_image(image_lettre);
        if(pSdlJeu->surface_lettre[i]==NULL)
        {
            strcpy(image_lettre,"../data/lettres/A.bmp");
            image_lettre[16]=(char) i;
            pSdlJeu->surface_lettre[i]=SDL_load_image(image_lettre);
        }
        assert(pSdlJeu->surface_lettre[i]!=NULL);
    }


    pSdlJeu->surface_efface=SDL_load_image("data/efface.bmp");
    if(pSdlJeu->surface_efface==NULL) pSdlJeu->surface_efface=SDL_load_image("../data/efface.bmp");
    assert(pSdlJeu->surface_efface!=NULL);




    TTF_CloseFont(police_joueur);
    TTF_CloseFont(police_chrono);
    TTF_Quit();

}

void sdlJeuLibere(sdlJeu * pSdlJeu)
{
    int i;
    if(pSdlJeu->surface_case!=NULL) SDL_FreeSurface(pSdlJeu->surface_case);
    if(pSdlJeu->surface_vortex != NULL) SDL_FreeSurface(pSdlJeu->surface_vortex);
    if(pSdlJeu->surface_milieu!=NULL) SDL_FreeSurface(pSdlJeu->surface_milieu);
    if(pSdlJeu->surface_valider != NULL) SDL_FreeSurface(pSdlJeu->surface_valider);
    if(pSdlJeu->surface_annuler != NULL) SDL_FreeSurface(pSdlJeu->surface_annuler);
    if(pSdlJeu->image_fond!= NULL) SDL_FreeSurface(pSdlJeu->image_fond);
    if(pSdlJeu->surface_efface!= NULL) SDL_FreeSurface(pSdlJeu->surface_efface);
    if(pSdlJeu->efface_lettre!=NULL) SDL_FreeSurface(pSdlJeu->efface_lettre);
    if(pSdlJeu->surface_erreur!=NULL)  SDL_FreeSurface(pSdlJeu->surface_erreur);
    if(pSdlJeu->surface_chrono!=NULL) SDL_FreeSurface(pSdlJeu->surface_chrono);
    if(pSdlJeu->surface_passe_tour!=NULL) SDL_FreeSurface(pSdlJeu->surface_passe_tour);
    SDL_FreeSurface(pSdlJeu->surface_change_lettres);



     for(i=0;i<pSdlJeu->jeu.nbJoueurs; i++)
    {
        if(pSdlJeu->surface_avatar[i]!=NULL) SDL_FreeSurface(pSdlJeu->surface_avatar[i]);
       if(pSdlJeu->surface_texte_score[i]!=NULL) SDL_FreeSurface(pSdlJeu->surface_texte_score[i]);
       if(pSdlJeu->surface_texte_nom_joueur[i]!=NULL) SDL_FreeSurface(pSdlJeu->surface_texte_nom_joueur[i]);
    }

     for(i=0; i<26; i++)
    {
       if(pSdlJeu->surface_lettre[i]!=NULL) SDL_FreeSurface(pSdlJeu->surface_lettre[i]);

    }


     if(pSdlJeu->surface_avatar!=NULL) free(pSdlJeu->surface_avatar);
     if(pSdlJeu->surface_texte_score!=NULL) free(pSdlJeu->surface_texte_score);
     if(pSdlJeu->surface_texte_nom_joueur!=NULL) free(pSdlJeu->surface_texte_nom_joueur);


    jeuLib(&(pSdlJeu->jeu));


}



void sdlJeuAffiche(sdlJeu * pSdlJeu)
{
    int x,y,i;
    Terrain *pTer;
    Jeu * pJeu;
    int lettre;

pJeu=&(pSdlJeu->jeu);
pTer=jeuGetTerrain(pJeu);

    SDL_apply_surface(pSdlJeu->image_fond,pSdlJeu->surface_ecran,0,0);

/*affichage du terrain*/

    for(x=0;x<getDim(pTer);x++)
    {
        for(y=0;y<getDim(pTer);y++)
        {
            if(terGetXY(pTer,x,y)=='_')
            SDL_apply_surface(pSdlJeu->surface_vortex,pSdlJeu->surface_ecran,x*70-50,y*70+20);
            else if(terGetXY(pTer,x,y)=='.')
            SDL_apply_surface(pSdlJeu->surface_case,pSdlJeu->surface_ecran,x*70-50,y*70+20);
            else if(terGetXY(pTer,x,y)=='*')
            SDL_apply_surface(pSdlJeu->surface_milieu,pSdlJeu->surface_ecran,x*70-50,y*70+20);
            else if(terGetXY(pTer,x,y)>=97 &&  terGetXY(pTer,x,y)<=122)
            {

                lettre=(int) terGetXY(pTer,x,y)-97;

                SDL_apply_surface(pSdlJeu->surface_lettre[lettre],pSdlJeu->surface_ecran,x*70-50,y*70+20);
            }
            else if(terGetXY(pTer,x,y)<=90 && terGetXY(pTer,x,y)>=65)
            {

                lettre=(int) terGetXY(pTer,x,y)-65;
                SDL_apply_surface(pSdlJeu->surface_lettre[lettre],pSdlJeu->surface_ecran,x*70-50,y*70+20);
            }

        }
    }

/* affichage du chevalet*/

    for(i=0;i<6;i++)
    {
        if(chevGetLettre(pJeu->pChev,i)=='\0') SDL_apply_surface(pSdlJeu->surface_efface,pSdlJeu->surface_ecran,125+70*i,720);

        else {lettre=(int) chevGetLettre(pJeu->pChev,i)-97;
        SDL_apply_surface(pSdlJeu->surface_lettre[lettre],pSdlJeu->surface_ecran,125+70*i,720);
        }

    }

/*Affichage des boutons valider,annuler et passer*/
    SDL_apply_surface(pSdlJeu->surface_valider,pSdlJeu->surface_ecran,40,715);
    SDL_apply_surface(pSdlJeu->surface_annuler,pSdlJeu->surface_ecran,550,715);
    SDL_apply_surface(pSdlJeu->surface_passe_tour,pSdlJeu->surface_ecran,700,740);
    SDL_apply_surface(pSdlJeu->surface_change_lettres,pSdlJeu->surface_ecran,700,680);

/*Affichage des noms de joueur:*/

 for(i=0;i<pJeu->nbJoueurs; i++)
    {
        SDL_apply_surface(pSdlJeu->surface_avatar[i],pSdlJeu->surface_ecran,660,200+i*100);
        SDL_apply_surface(pSdlJeu->surface_texte_nom_joueur[i],pSdlJeu->surface_avatar[i],60,0);
        SDL_apply_surface(pSdlJeu->surface_texte_score[i],pSdlJeu->surface_avatar[i],80,30);

    }

}

void affichageErreur(sdlJeu *pSdlJeu)
{
    SDL_apply_surface(pSdlJeu->surface_erreur,pSdlJeu->surface_ecran,150,300);
    SDL_Flip(pSdlJeu->surface_ecran);
     sdlJeuAffiche(pSdlJeu);
     SDL_Delay(3000);
    sdlJeuAffiche(pSdlJeu);
    SDL_FreeSurface(pSdlJeu->surface_erreur); pSdlJeu->surface_erreur=NULL;
}



void sdljeuBoucle(sdlJeu * pSdlJeu)
{
   int continu,indice_lettre,terIndice_x,terIndice_y,nbLettrePose,valider,j,indiceRetourChev,chercheOuPoserLettre,numJoueur,annuler;
   unsigned int res_FormeMot,passe,echange_lettre;
   int tempsPrecedent = 0, tempsActuel = 0,time;
   char lettre;
   char score_tab[1],temps[50];
   int pTabX[6],pTabY[6],nb_tour;
   SDL_Event event;
   SDL_Color couleurBlanche,couleurBeige,couleurBleue;

   Terrain *pTer;
   Jeu * pJeu;
   Chevalet *pChev;
   TTF_Font *police_joueur;
   TTF_Font *police_chrono;

   sdljeuInit(pSdlJeu);

    assert(TTF_Init()!=-1);

    police_joueur=TTF_OpenFont("data/police/nomjoueur.ttf", 30);
    if(police_joueur==NULL) police_joueur=TTF_OpenFont("../data/police/nomjoueur.ttf", 10);
    assert(police_joueur!=NULL);

    police_chrono=TTF_OpenFont("data/police/temps.ttf", 30);
    if(police_chrono==NULL) police_chrono=TTF_OpenFont("../data/police/temps.ttf", 10);
    assert(police_chrono!=NULL);

    couleurBlanche.r=255;
    couleurBlanche.g=255;
    couleurBlanche.b=255;

    couleurBleue.r=109;
    couleurBleue.g=160;
    couleurBleue.b=207;

    couleurBeige.r=213;
    couleurBeige.g=179;
    couleurBeige.b=121;

/*Initiliasation des paramètres*/
    pJeu=&(pSdlJeu->jeu);
    pTer=jeuGetTerrain(pJeu);
    pChev=jeuGetChev(pJeu);

   continu=1;
   annuler=0;
   valider=0;
   terIndice_x=0;
   terIndice_y=0;
   indice_lettre=0;
   nbLettrePose=0;
   valider=0;
   numJoueur=1;
   nb_tour=0;
   time=0;
   passe=0;
   echange_lettre=0;
   pSdlJeu->surface_erreur=NULL;


   do
   {

      sdlJeuAffiche(pSdlJeu);


     tempsActuel=SDL_GetTicks()/1000;
     time=25-((tempsActuel-tempsPrecedent)%3600)%60;

     SDL_FreeSurface(pSdlJeu->surface_chrono);
     sprintf(temps,"CHRONO:  %02d SEC",time);
     pSdlJeu->surface_chrono=TTF_RenderText_Shaded(police_chrono,temps, couleurBlanche,couleurBleue);
     assert(pSdlJeu->surface_chrono!=NULL);
     SDL_apply_surface(pSdlJeu->surface_chrono,pSdlJeu->surface_ecran,590,50);

    SDL_Flip(pSdlJeu->surface_ecran);

     SDL_PollEvent(&event);

     if(tempsActuel-tempsPrecedent>25)
     {
          remettreLettreDansChev(pTer,pChev,pTabX,pTabY,nbLettrePose);
          chargementErreur(pSdlJeu,1);
          affichageErreur(pSdlJeu);
           nbLettrePose=0;
          tempsPrecedent=tempsActuel;
     }



        if(event.button.button==SDL_BUTTON_LEFT)
        {
             if( event.type==SDL_MOUSEBUTTONDOWN )
         {


             /*Teste si on se trouve sur le chevalet*/
             if(event.motion.x<=125+6*70  && event.motion.x>=125
                && event.motion.y>=720 && event.motion.y<=720+70)
            /*Si c'est le cas alors on récupère les coordonnées de la lettre situé à indice_lettre dans le chevalet*/
            {

                indice_lettre=(event.button.x-125)/70;

            }
            /*Test si on appuie sur le boutton valider*/

                if(event.motion.x>=40 && event.motion.x<=70+70 && event.motion.y>=730 && event.motion.y<=730+80)
            {
                valider=1;
            }

                if(event.motion.x>=550 && event.motion.x<=580+70 && event.motion.y>=730 && event.motion.y<=730+80)
                {
                    annuler=1;
                }

                if(event.motion.x>=700 && event.motion.x<=700+150 && event.motion.y>=740 && event.motion.y<=740+50)
                {
                    passe=1;
                }

                 if(event.motion.x>=700 && event.motion.x<=700+150 && event.motion.y>=680 && event.motion.y<=680+50)
                {
                    echange_lettre=1;
                }


         }

            if( event.type==SDL_MOUSEBUTTONUP )
            {


                if(annuler==1)
                {
                      for(j=0;j<nbLettrePose;j++)
                         {
                            /* on les remet dans le chevalet*/
                            for(chercheOuPoserLettre=0;chercheOuPoserLettre<6;chercheOuPoserLettre++)
                              {
                                if(chevTestCaseVide(pChev,chercheOuPoserLettre)==1)
                                           {
                                               indiceRetourChev=chercheOuPoserLettre;
                                               chercheOuPoserLettre=6;
                                           }
                              }
                         lettre=terGetXY(pTer,pTabX[j],pTabY[j]);
                         pChev->tabLettres[indiceRetourChev]=lettre;
                         terSetXY(pTer,pTabX[j],pTabY[j],'.');
                        }
                      nbLettrePose=0;
                      annuler=0;

                }

                else if(echange_lettre==1)
                {
                    remettreLettreDansChev(pTer,pChev,pTabX,pTabY,nbLettrePose);
                    reInitChev(pJeu);
                    if(numJoueur==pJeu->nbJoueurs) {numJoueur=1;}
                    else {numJoueur++; }
                    tempsPrecedent=tempsActuel;
                    nbLettrePose=0;
                    echange_lettre=0;
                }

                else if(passe==1)
                {
                     remettreLettreDansChev(pTer,pChev,pTabX,pTabY,nbLettrePose);
                    if(numJoueur==pJeu->nbJoueurs) {numJoueur=1;}
                    else {numJoueur++; }
                    tempsPrecedent=tempsActuel;
                    nbLettrePose=0;
                    passe=0;
                }

                else if(valider==1)
                {
                    /*on vérifie si le joueur a bien formé un mot:*/
                    if(verifFormeMot(pTabX,pTabY,nbLettrePose,pTer)==0 )
                    {
                        remettreLettreDansChev(pTer,pChev,pTabX,pTabY,nbLettrePose);
                          chargementErreur(pSdlJeu,2);
                          affichageErreur(pSdlJeu);
                        valider=0;
                        if(numJoueur==pJeu->nbJoueurs) {numJoueur=1;}
                        else {numJoueur++; }
                        tempsPrecedent=tempsActuel;
                    }

                     else if(nb_tour==0 && verifJoueEtoile(pTabX,pTabY,nbLettrePose)==0)
                    {
                        remettreLettreDansChev(pTer,pChev,pTabX,pTabY,nbLettrePose);
                          chargementErreur(pSdlJeu,3);
                          affichageErreur(pSdlJeu);
                        valider=0;
                        if(numJoueur==pJeu->nbJoueurs) {numJoueur=1;}
                        else {numJoueur++; }
                        nbLettrePose=0;
                        tempsPrecedent=tempsActuel;
                    }

                   else if(nb_tour!=0 && verifMotRaccorde(pTer,pTabX,pTabY,nbLettrePose)==0)
                  {
                        remettreLettreDansChev(pTer,pChev,pTabX,pTabY,nbLettrePose);
                          chargementErreur(pSdlJeu,4);
                          affichageErreur(pSdlJeu);
                        valider=0;
                        if(numJoueur==pJeu->nbJoueurs) {numJoueur=1;}
                        else {numJoueur++; }
                        nbLettrePose=0;
                        tempsPrecedent=tempsActuel;
                  }

                  else if(verifMotDico(pTabX,pTabY,verifFormeMot(pTabX,pTabY,nbLettrePose,pTer),pTer,nbLettrePose)==0)
                    {
                        remettreLettreDansChev(pTer,pChev,pTabX,pTabY,nbLettrePose);
                          chargementErreur(pSdlJeu,5);
                          affichageErreur(pSdlJeu);
                        valider=0;
                        if(numJoueur==pJeu->nbJoueurs) {numJoueur=1;}
                        else {numJoueur++; }
                        nbLettrePose=0;
                        tempsPrecedent=tempsActuel;
                    }

                  else
                  { res_FormeMot=verifFormeMot(pTabX,pTabY,nbLettrePose,pTer);
                      for(j=0;j<nbLettrePose;j++)
                          {
                              lettre=terGetXY(pTer,pTabX[j],pTabY[j]);

                                if(lettre>=97 && lettre <=122)
                                {
                                    lettre=lettre-32;
                                }
                                terSetXY(pTer,pTabX[j],pTabY[j],lettre);
                          }

                            setScore(pJeu->tabJoueurs[numJoueur-1],jeuCalculScore(pTabX,pTabY,res_FormeMot,pTer,nbLettrePose)+pJeu->tabJoueurs[numJoueur-1]->score);

                            SDL_FreeSurface(pSdlJeu->surface_texte_score[numJoueur-1]);
                            sprintf(score_tab,"%d",pJeu->tabJoueurs[numJoueur-1]->score);
                            pSdlJeu->surface_texte_score[numJoueur-1]=TTF_RenderText_Shaded(police_joueur,score_tab, couleurBlanche,couleurBeige);
                            assert(pSdlJeu->surface_texte_score[numJoueur-1]!=NULL);

                            SDL_Flip(pSdlJeu->surface_ecran);

                           if(pJeu->tabJoueurs[numJoueur-1]->score>=25)
                           {
                                reInitTer(pJeu);
                              terSetXY(pTer,1,5,'V');
                              terSetXY(pTer,2,5,'I');
                              terSetXY(pTer,3,5,'C');
                              terSetXY(pTer,4,5,'T');
                              terSetXY(pTer,5,5,'O');
                              terSetXY(pTer,6,5,'I');
                              terSetXY(pTer,7,5,'R');
                              terSetXY(pTer,8,5,'E');

                            sdlJeuAffiche(pSdlJeu);
                            SDL_Flip(pSdlJeu->surface_ecran);

                              SDL_Delay(3000);
                              continu=0;
                           }

                             if(caseVortex(pTabX,pTabY,nbLettrePose)==1)
                                {
                                    reInitTer(pJeu);
                                 reInitChev(pJeu);
                                 nb_tour=0;
                                }
                            else if(caseVortex(pTabX,pTabY,nbLettrePose)!=1) nb_tour++;

                            if(numJoueur==pJeu->nbJoueurs) {numJoueur=1;}
                            else {numJoueur++; }

                               chevRemplir(pChev);
                                nbLettrePose=0;

                            for(j=0;j<6;j++)
                              {
                                pTabX[j]=-1;
                                pTabY[j]=-1;
                              }

                             valider=0;
                             SDL_Flip(pSdlJeu->surface_ecran);
                             tempsPrecedent=tempsActuel;

                    }

                  }

            else
                {
                /*récupération des coordonnées où l'on place la lettre*/

                terIndice_x=(event.motion.x+50)/70;
                terIndice_y=(event.motion.y-20)/70;

                /* on met la lettre dans le terrain et on l'affiche*/
                 if(chevGetLettre(pChev,indice_lettre)!='\0')
                 {
                     if(terPositionValide(pTer,terIndice_x,terIndice_y)==1)
                        {
                        nbLettrePose++;

                         terSetXY(pTer,terIndice_x,terIndice_y,pChev->tabLettres[indice_lettre]);

                        /* on stocke les coordonnées dans nos tableaux afin de faire des tests plus loin*/

                        pTabX[nbLettrePose-1]=terIndice_x;
                        pTabY[nbLettrePose-1]=terIndice_y;

                         /*on supprime la lettre du chevalet pour que le joueur ne rejoue pas avec*/
                        pChev->tabLettres[indice_lettre]='\0';
                        }
                 }



               SDL_Flip(pSdlJeu->surface_ecran);
                }

              }
            }


            if ( event.type == SDL_QUIT )
				continu=0;



      assert( SDL_Flip( pSdlJeu->surface_ecran )!=-1 );
   } while(continu==1);

        TTF_CloseFont(police_joueur);
        TTF_CloseFont(police_chrono);
        TTF_Quit();
        	sdlJeuLibere(pSdlJeu);
        SDL_Quit();
}


